package Day03_连续整数求和;

/**
 * -------------------------------------------------------------------
 * 题目：
 *      给定一个正整数 n，返回 连续正整数满足所有数字之和为 n的组数 。
 * -------------------------------------------------------------------
 * 示例:
 *      输入: n = 5
 *      输出: 2
 *      解释: 5 = 2 + 3，共有两组连续整数([5],[2,3])求和后为 5。
 * -------------------------------------------------------------------
 * 方法：
 *      数学法
 * -------------------------------------------------------------------
 */
class Solution {
    public static void main(String[] args) {
        int n =5;
        System.out.println(consecutiveNumbersSum(n));
    }
    public static int consecutiveNumbersSum(int n) {
        int ans = 0;
        for (int i = 1; n > 0; n -= i++)
            ans += (n % i == 0 ? 1 : 0);
        return ans;
    }
}